package com.tiancheng.trade.payment.channel.ums;

import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;

/**
 * @Author: kellen
 * @Description:
 * @Date: create in 2024/11/20 15:45
 */
@Getter
@Setter
public class UmsProperties {

    /**
     * 机构支付渠道id
     */
    private Long orgPayChannelId;
    /**
     * 机构支付渠道名称
     */
    private String orgPayChannelName;
    /**
     * 请求来源
     */
    private String msgSrc;
    /**
     * 商户号app&h5
     */
    private String midApp;
    /**
     * 终端号app&h5
     */
    private String tidApp;
    /**
     * 商户号-小程序
     */
    private String midMini;
    /**
     * 终端号-小程序
     */
    private String tidMini;
    /**
     * 商户号-微信公众号
     */
    private String midWxApp;
    /**
     * 终端号-微信公众号
     */
    private String tidWxApp;
    /**
     * 商户号-扫码支付
     */
    private String midScan;
    /**
     * 终端号-扫码支付
     */
    private String tidScan;
    /**
     * 支付场景-app
     */
    private String instMidApp;
    /**
     * 支付场景-微信小程序
     */
    private String instMidMini;
    /**
     * 支付场景-H5
     */
    private String instMidH5;
    /**
     * 支付场景-微信公众号
     */
    private String instMidWxApp;
    /**
     * 支付场景-扫码支付
     */
    private String instMidScan;
    /**
     * 通讯秘钥
     */
    private String key;
    /**
     * 订单前缀
     */
    private String merOrderIdPre;
    /**
     * 支付回调地址
     */
    private String payCallback;
    /**
     * 银商平台接口地址
     */
    private String apiUrl;
    /**
     * 银商平台接口地址-微信公众号和H5
     */
    private String apiUrlH5Wx;
    /**
     * 微信小程序appId
     */
    private String miniAppId;
    /**
     * 微信公众号Id
     */
    private String wxAppId;
    /**
     * 集团号
     */
    private String groupCode;
    /**
     * 银联商务分账、划付服务器-地址
     */
    private String umsSettleHost1;
    private String umsSettleHost2;
    /**
     * 银联商务分账、划付服务器-端口
     */
    private Integer umsSettlePort1;
    private Integer umsSettlePort2;
    /**
     * 银联商务分账、划付服务器-用户名
     */
    private String umsSettleUser;
    /**
     * 银联商务分账、划付服务器-密码
     */
    private String umsSettlePassword;
    /**
     * 银联商务分账、划付文件目录
     */
    private String umsSettleDirPre;
    /**
     * 银联商务划付文件名前缀
     */
    private String apprPre;
    /**
     * 银联商务分账文件名前缀
     */
    private String distPre;
    /**
     * 银联回盘文件文件保存
     */
    private String umsSettleDownloadDir;
    /**
     * 商户加签私钥路径
     */
    private String rsaPrivatePath;
    /**
     * 商户加签密码
     */
    private String rsaPrivatePassword;
    /**
     * 商户回盘验签公钥路径
     */
    private String rsaPublicPath;
    /**
     * 腾云子商户企业用户号
     */
    private String enterpriseCode;
    /**
     * 腾云收款人名
     */
    private String receiptNameTy;
    /**
     * 腾云开户行名称
     */
    private String bankNameTy;
    /**
     * 腾云开户行行号
     */
    private String bankCodeTy;
    /**
     * 腾云开户行账号
     */
    private String bankAccountTy;
    /**
     * 腾云营销账号
     */
    private String marketingAccount;
    /**
     * 腾云开户行账号
     */
    @Resource
    private UmsQrcProperties qrcProperties;

    @Data
    @Component
    public class UmsQrcProperties{
        private String url;
        /**
         * 二维码订单号前缀
         */
        private String version;
        /**
         * 付款方机构代码
         */
        private String issCode;
        /**
         * 回调地址
         */
        private String backUrl;
        /**
         * 二维码订单号前缀
         */
        private String merOrderIdPre;
        /**
         * 签名方式：01-rsa
         */
        private String signMethod;
        /**
         *是否验证验签证书CN，除了false都验
         */
        private boolean ifValidateCNName;
        /**
         *是否验证https证书，默认都不验
         */
        private boolean ifValidateRemoteCert;
        /**
         *私钥签名证书路径
         */
        private String signCertPath;
        /**
         *私钥签名证书密码
         */
        private String signCertPwd;
        /**
         *私钥签名证书类型
         */
        private String signCertType;
        /**
         *验证签名证书路径(这里配置的是目录，不要指定到公钥文件)
         */
        private String validateCertDir;
        /**
         *加密公钥证书路径
         */
        private String encryptCertPath;
        /**
         *免密支付限额，单位分，不超过该金额银联直接处理支付，超过后触发附加处理
         */
        private Integer pinFree;
        /**
         *免密最大支付限额，单位分，超过后报错
         */
        private Integer maxAmont;
        /**
         * 获取二维码接口url
         * @return url
         */
        public String getQrcB2cIssBackTransUrl(){
            return url+"issBackTransReq.do";
        }
    }

}
